From e85cbfacd7e070940edaad971dad424f878e626d Mon Sep 17 00:00:00 2001 From: Steve Langasek Date: Fri, 8 Jan 2021 10:47:39 +0100 Subject: [PATCH] Ensure that our variable checking for >= 0 is signed Last-Update: 2020-03-17 Bug-Debian: https://bugs.debian.org/954127 The type of v->n is size_t, which is an unsigned type, and we are assigning v->n - 1 to i and looping while this is >= 0. If v->n == 0, on some architectures (armhf) this results in i being set to a positive value (specifically, UINT32_MAX). Gbp-Pq: Name ensure-signed-comparison.patch --- mag.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mag.c b/mag.c index acdca29..f9364c9 100644 --- a/mag.c +++ b/mag.c @@ -506,7 +506,7 @@ double mag_cal_rdist(mag_t *g) for (j = 0; j < 2; ++j) { sum_n = sum_l = 0; - for (i = v->n - 1; i >= 0; --i) { + for (i = (int64_t)v->n - 1; i >= 0; --i) { const magv_t *p = &v->a[srt[i]<<32>>32]; int tmp1, tmp2; tmp1 = tmp2 = 0; -- 2.30.2